package org.hwua.production.mapper.authority;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.hwua.production.domain.authority.SysRolePermission;
import org.hwua.production.domain.authority.SysRolePermissionExample;
/**
 * 角色权限配置数据访问层接口，用于配置角色所能操作的系统功能项
 * @author hwua
 *
 */
public interface SysRolePermissionMapper {
	/**
	 * 保存修改角色权限配置信息
	 * @sysRolePermission 封装了角色权限配置信息,id 编号,roleId 角色编号,sysPermissionId 系统功能编号
	 * 通过 roleId 角色编号
	 * 更新 sysPermissionId 系统功能编号这一列
	 * @return 影响记录数
	 */
	int updateRolePermission(SysRolePermission sysRolePermission);
	/**
	 * 统计总角色权限配置信息记录数
	 * @param example 条件对象
	 * @return 记录数
	 */
    int countByExample(SysRolePermissionExample example);

    /**
     * 删除角色权限配置信息
     * @param example 条件对象
     * @return 影响记录数
     */
    int deleteByExample(SysRolePermissionExample example);

    /**
     * 通过编号删除角色权限配置信息
     * @param id 编号
     * @return 影响记录数
     */
    int deleteByPrimaryKey(String id);

    /**
     * 添加角色权限配置信息
     * @param record 封装了角色权限配置信息,其中id 编号,roleId 角色编号及sysPermissionId 系统功能编号必有
     * @return 影响记录数
     */
    int insert(SysRolePermission record);

    /**
     * 添加角色权限配置信息
     * @param record 封装了角色权限配置信息,其中id 编号,可能有roleId 角色编号,可能有sysPermissionId 系统功能编号等,
     * 根据填的值添加对应列
     * @return 影响记录数
     */
    int insertSelective(SysRolePermission record);

    /**
	 * 获取所有角色权限配置信息列表
	 * @param example 条件对象
	 * @return 角色权限配置信息列表
	 */
    List<SysRolePermission> selectByExample(SysRolePermissionExample example);

    /**
	 * 获取角色权限配置信息
	 * @param id 编号
	 * @return 角色权限配置信息
	 */
    SysRolePermission selectByPrimaryKey(String id);

    /**
     * 
     * @param record 封装了角色权限配置信息,其中id 编号必有,可能有roleId 角色编号,可能有sysPermissionId 系统功能编号等,
	 * 根据填的值更新表里对应列
     * @param example 条件对象
     * @return 影响的记录数
     */
    int updateByExampleSelective(@Param("record") SysRolePermission record, @Param("example") SysRolePermissionExample example);

    /**
     * 保存修改角色权限配置信息,会修改表里除了主键外的其他列
     * @param record 封装了角色权限配置信息,id 编号,roleId 角色编号,sysPermissionId 系统功能编号
     * @param example 条件对象
     * @return 影响的记录数
     */
    int updateByExample(@Param("record") SysRolePermission record, @Param("example") SysRolePermissionExample example);

    /**
     * 保存修改角色权限配置信息
     * @param record 封装了角色权限配置信息,id 编号,roleId 角色编号,sysPermissionId 系统功能编号,
     * 根据填的值更新表里对应列
     * @return 影响的记录数
     */
    int updateByPrimaryKeySelective(SysRolePermission record);

    /**
     * 保存修改角色权限配置信息,会修改表里除了主键外的其他列
     * @param record 封装了角色权限配置信息,id 编号,roleId 角色编号,sysPermissionId 系统功能编号
     * @return 影响的记录数
     */
    int updateByPrimaryKey(SysRolePermission record);
}